home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 February: Tool Chest / Dev.CD Feb 94.toast / New System Software Extensions / QuickDraw™ GX v1.0ß2 / Sample Code / Printing Samples / Printer Drivers… / ImageWriterLQ / UniversalMessageResources.r < prev    next >
Encoding:
Text File  |  1993-09-13  |  41.0 KB  |  1,160 lines  |  [TEXT/MPS ]

  1. /* ------------------------------------------------------------------------------
  2. FILENAME
  3.     UniversalMessageResources.r
  4.  
  5. DESCRIPTION
  6.     This module contains the ImageWriter LQ constants, types, and resources that
  7.     are specific to supporting the New (QuickDraw GX) API.
  8.             
  9.     Note: all resources should be designated to load into the system heap.
  10.  
  11. COPYRIGHT
  12.      Copyright Apple Computer, Inc. 1992
  13.      All rights reserved. 
  14.     
  15. -------------------------------------------------------------------------------- */
  16.  
  17. // System 7.0 Compatible
  18. #define SystemSevenOrLater        1
  19.  
  20. // Include System Resource Definitions
  21. #include "Types.r"
  22. #include "SysTypes.r"
  23.  
  24. // Include the ImageWriter LQ driver constants that are used in the resources 
  25. #include "Resources.h"
  26.  
  27. // Include the public QuickDraw GX printing files 
  28. #include "PrintingResTypes.r"
  29.  
  30.  
  31. /*********************************************************************************
  32.  *                                RESOURCES                                                              *
  33.  *********************************************************************************/
  34.  
  35. /*************************** Universal Imaging Message Override Resource **************************/
  36. // This overrideType resource tells the Printing Manager which new Universal Imaging 
  37. // Messages the driver overrides. 
  38.  
  39. resource gxOverrideType (gxDriverUniversalOverrideID, sysheap, purgeable)
  40. {
  41.     {
  42.         gxInitialize,                kNewAPISegmentID, kFirstMsgJumpTableOffset,
  43.         gxShutDown,                 kNewAPISegmentID, kFirstMsgJumpTableOffset + 4,
  44.         gxJobDefaultFormatDialog,    kNewAPISegmentID, kFirstMsgJumpTableOffset + 8,
  45.         gxJobPrintDialog,             kNewAPISegmentID, kFirstMsgJumpTableOffset + 12,
  46.         gxJobFormatModeQuery,         kNewAPISegmentID, kFirstMsgJumpTableOffset + 16,
  47.         gxOpenConnection,            kNewAPISegmentID, kFirstMsgJumpTableOffset + 20,
  48.         gxCleanupOpenConnection,    kNewAPISegmentID, kFirstMsgJumpTableOffset + 24,
  49.         gxStartSendPage,             kNewAPISegmentID, kFirstMsgJumpTableOffset + 28,
  50.         gxImagePage,                 kNewAPISegmentID, kFirstMsgJumpTableOffset + 32,
  51.         gxRenderPage,                 kNewAPISegmentID, kFirstMsgJumpTableOffset + 36,
  52.         gxDefaultPrinter,             kNewAPISegmentID, kFirstMsgJumpTableOffset + 40,
  53.         gxDefaultFormat,             kNewAPISegmentID, kFirstMsgJumpTableOffset + 44,
  54.         gxDefaultJob,                 kNewAPISegmentID, kFirstMsgJumpTableOffset + 48,
  55.         gxSetupImageData,            kNewAPISegmentID, kFirstMsgJumpTableOffset + 52,
  56.         gxFetchTaggedData,            kNewAPISegmentID, kFirstMsgJumpTableOffset + 56,
  57.         gxDefaultDesktopPrinter,    kNewAPISegmentID, kFirstMsgJumpTableOffset + 60,
  58.         gxGetDTPMenuList,            kNewAPISegmentID, kFirstMsgJumpTableOffset + 64,
  59.         gxDTPMenuSelect,            kNewAPISegmentID, kFirstMsgJumpTableOffset + 68,
  60.     };
  61. };
  62.  
  63.  
  64. /*************************** Raster Imaging Message Override Resource **************************/
  65. // This overrideType resource tells the Printing Manager which Raster Imaging Messages the driver 
  66. // overrides. 
  67.  
  68. resource gxOverrideType (gxDriverImagingOverrideID, sysheap, purgeable)
  69. {
  70.     {
  71.         gxRasterPackageBitmap,     kNewAPISegmentID, kFirstMsgJumpTableOffset + 72,
  72.         gxRasterLineFeed,             kNewAPISegmentID, kFirstMsgJumpTableOffset + 76,
  73.     };
  74. };
  75.  
  76.  
  77. /*************************** Type of Imaging System Supported by the Driver **************************/
  78. // This imagingSystemResType resource tells the Printing Manager the type of imaging system this 
  79. // driver uses.
  80.  
  81. resource gxImagingSystemSelectorType (gxImagingSystemSelectorID, sysheap, purgeable)
  82. {
  83.     gxRasterPrinterType        // LaserWriter SC uses the raster imaging system 
  84. };
  85.  
  86.  
  87. /*************************** Customizing Behavior of Raster Imaging Messages ***************************/
  88. // For most raster devices, the driver should include a resource of type, rasterPrefsType.  This 
  89. // resource allows the driver to specify the imaging options and format page scaling.   
  90.  
  91. resource gxRasterPrefsType (gxRasterPrefsID, sysheap, purgeable)
  92. {
  93.     gxDefaultRaster,                                // default options are fine
  94.     
  95.     0x00D80000,    0x00D80000,                    // 216 x 216 dpi device
  96.     24,                                            // min band size
  97.     0,                                                // max band size (0 = full page)
  98.     0x00004000,                                    // RAM percentage (25%)
  99.     100*1024,                                    // RAM slop (100K)
  100.     1,                                                // 1 bit per plane device
  101.     {
  102.         // YELLOW
  103.         gxDefaultOffscreen, 
  104.         
  105.         0x000F0000,                                // angle = 15 degrees
  106.         0x001E0000,                                // freq = 30
  107.         gxRoundDot,                                // gxRoundDot dithering
  108.         gxComponent3Tint,                        // extract yellow and dither it (3rd gxComponent of cmyk)
  109.         
  110.         gxRGBSpace, gxNoProfile, 0, 0, 0, 0,                     // dotColor == black
  111.         gxRGBSpace, gxNoProfile, 0xFFFF, 0xFFFF, 0xFFFF, 0,    // background color == white
  112.         
  113.         gxCMYKSpace,                                // convert color to gxCMYKSpace before halftoning
  114.  
  115.         gxNoSpace,
  116.         gxNoSet,
  117.         gxNoProfile,
  118.         
  119.         // MAGENTA
  120.         gxDefaultOffscreen, 
  121.         
  122.         0x00000000,                                // angle = 0 degrees
  123.         0x001E0000,                                // freq = 30
  124.         gxRoundDot,                                // gxRoundDot dithering
  125.         gxComponent2Tint,                        // extract magenta and dither it (2nd gxComponent of cmyk)
  126.         
  127.         gxRGBSpace, gxNoProfile, 0, 0, 0, 0,                     // dotColor == black
  128.         gxRGBSpace, gxNoProfile, 0xFFFF, 0xFFFF, 0xFFFF, 0,    // background color == white
  129.         
  130.         gxCMYKSpace,                                // convert color to gxCMYKSpace before halftoning
  131.  
  132.         gxNoSpace,
  133.         gxNoSet,
  134.         gxNoProfile,
  135.         
  136.         // CYAN
  137.         gxDefaultOffscreen, 
  138.         
  139.         0x003C0000,                                // angle = 60 degrees
  140.         0x001E0000,                                // freq = 30
  141.         gxRoundDot,                                // gxRoundDot dithering
  142.         gxComponent1Tint,                        // extract cyan and dither it (1st gxComponent of cmyk)
  143.         
  144.         gxRGBSpace, gxNoProfile, 0, 0, 0, 0,                     // dotColor == black
  145.         gxRGBSpace, gxNoProfile, 0xFFFF, 0xFFFF, 0xFFFF, 0,    // background color == white
  146.         
  147.         gxCMYKSpace,                                // convert color to gxCMYKSpace before halftoning
  148.  
  149.         gxNoSpace,
  150.         gxNoSet,
  151.         gxNoProfile,
  152.         
  153.         // BLACK
  154.         gxDefaultOffscreen, 
  155.         
  156.         0x002D0000,                                // angle = 45 degrees
  157.         0x001E0000,                                // freq = 30
  158.         gxRoundDot,                                // gxRoundDot dithering
  159.         gxComponent4Tint,                        // extract black and dither it (4th gxComponent of cmyk)
  160.         
  161.         gxRGBSpace, gxNoProfile, 0, 0, 0, 0,                     // dotColor == black
  162.         gxRGBSpace, gxNoProfile, 0xFFFF, 0xFFFF, 0xFFFF, 0,    // background color == white
  163.         
  164.         gxCMYKSpace,                                // convert color to gxCMYKSpace before halftoning
  165.  
  166.         gxNoSpace,
  167.         gxNoSet,
  168.         gxNoProfile,
  169.     };
  170. };
  171.  
  172. // The rasterPackType resource allows us to control the packaging that takes place within the
  173. // raster generic driver's RasterDataIn proc.  Drivers which do not use the Raster 
  174. // generic RasterDataIn proc or override it entirely themselves need not have this resource.
  175.  
  176. resource gxRasterPackType (gxRasterPackID, sysHeap, purgeable)
  177. {
  178.     kBufferSize,        // packing buffer size - for the ImageWriter LQ 
  179.                             // this is the # of bytes in our largest single packaged line
  180.     
  181.     4,                        // we are a CMYK device (so colorsPasses == 4)
  182.     24,                    // we have a 24 pixel high head
  183.     1,                        // it takes one pass to achive this 24 pixels
  184.     0,                        // number of pixel difference between passes; N/A since we do it in one pass
  185.     gxInterlaceColor,    // avoid ribbon contamination
  186. };
  187.  
  188. // The rasterPackOptionsType resource controls the remaining 2 raster packaging messages: RasterLineFeed,
  189. // and RasterPackageBitmap.  If you allow the generic driver to implement these messages for
  190. // you, then you MUST have a resource of this type. 
  191.  
  192. resource gxRasterPackOptionsType (gxRasterPackOptionsID, sysHeap, purgeable)
  193. {
  194.     gxPrintingDriverBaseID,        //    Resource ID of 'wstr' resource containing the start page string to send to printer
  195.     gxPrintingDriverBaseID + 4,    //    Resource ID of 'wstr' resource containing the form feed string to send to printer
  196.     
  197.     // forward line feed characteristics
  198.     99,                            // max line feed amount is 99
  199.     gxRasterNumToASCII,            // express line feed as ASCII
  200.     2,                                // minimum width of ASCII number is 2
  201.     "0",                            // pad ASCII number with leading zeros
  202.     "\0X1BT",                    // <esc>T == set line feed size
  203.     "\0X1Bf\0X0A",                // <esc>f<lf> == direction forward, do line feed
  204.     
  205.     // reverse line feed characteristics
  206.     99,                            // max line feed amount is 99
  207.     gxRasterNumToASCII,            // express line feed as ASCII
  208.     2,                                // minimum width of ASCII number is 2
  209.     "0",                            // pad ASCII number with leading zeros
  210.     "\0X1BT",                    // <esc>T == set line feed size
  211.     "\0X1Br\0X0A",                // <esc>r<lf> == direction reverse, do line feed
  212. };
  213.  
  214. // These 'wstr' resources are the start page and form feed strings that are referenced in the rasterPackOptionsType
  215. // resource
  216.  
  217. resource 'wstr' (kHighResUniDirID, sysHeap, purgeable)
  218. {
  219.     "\0X1B>" "\0X1Be"                // Start page string for high resolution: unidirectional, 216 dpi == ESC > ESC e
  220. };
  221.  
  222. resource 'wstr' (kHighResBiDirID, sysHeap, purgeable)
  223. {
  224.     "\0X1B<" "\0X1Be"                // Start page string for high resolution: bidirectional, 216 dpi == ESC < ESC e
  225. };
  226.  
  227. resource 'wstr' (kLowResUniDirID, sysHeap, purgeable)
  228. {
  229.     "\0X1B>" "\0X1Bn"    "\0X1B!"    // Start page string for standard resolution: unidirectional, 72 dpi, boldface  == ESC > ESC e ESC !
  230. };
  231.  
  232. resource 'wstr' (kLowResBiDirID, sysHeap, purgeable)
  233. {
  234.     "\0X1B<" "\0X1Bn"    "\0X1B!"    // Start page string for standard resolution: bidirectional, 72 dpi, boldface == ESC < ESC n ESC !
  235. };
  236.  
  237. resource 'wstr' (gxPrintingDriverBaseID + 4, sysHeap, purgeable) 
  238. {
  239.     "\0X0C"    "\0X1B\0X22"        // End page string:   a control-L for the IW LQ's form feed and turn off boldface if needed (ESC ")
  240. };
  241.  
  242.  
  243. /*************************** I/O Related Resources ***************************/
  244.  
  245. // This universalIOPrefsType resource controls the behavior of the standard buffering and IO 
  246. // within the Universal Driver. 
  247.  
  248. resource gxUniversalIOPrefsType (gxUniversalIOPrefsID, sysHeap, purgeable)
  249. {
  250.         standardIO,
  251.         4,                    // Universal Driver will not allocate any buffers 
  252.         kBufferSize,    // size of the buffers allocated (at least as big as one scan line) 
  253.         10,                // number of I/O request blocks to allocate for the Universal Driver's I/O 
  254.         1200,                // 1200 tick timeout for open/close 
  255.         1200,                // 1200 tick timeout for reading and writing 
  256. };
  257.     
  258. // The following resources are strings for capturing PAP ImageWriter LQ's
  259.  
  260. resource gxCaptureType (gxCapturedAppleTalkType, sysHeap, purgeable)
  261. {
  262.     "\0D011LQShared"
  263. };
  264. resource gxCaptureType (gxUncapturedAppleTalkType, sysHeap, purgeable)
  265. {
  266.     "\0D011LQ"
  267. };
  268.  
  269. resource gxCaptureType (gxCaptureStringID, sysHeap, purgeable)
  270. {
  271.     "\0X1B\0X62NAMELENPRINTERNAMETYPELENPRINTERTYPE\0X01*"
  272. };
  273.  
  274. resource gxCaptureType (gxReleaseStringID, sysHeap, purgeable)
  275. {
  276.     "\0X1B\0X62NAMELENPRINTERNAMETYPELENPRINTERTYPE\0X01*"
  277. };
  278.  
  279.  
  280. /*************************** Status Dialog Related Resources ***************************/
  281. // The 'stat' resources provide the Printing Manager the status messages that need to be displayed at
  282. // any given time during the printing process. The driver forces statuses to be displayed by calling 
  283. // either ReportStatus or AlertTheUser, depending upon whether the user needs to make some decision 
  284. // about the printing process (e.g. paper tray not properly loaded. Note that though the statID field
  285. // of the 'stat' resource is for the clients use (us), PrinterShare requires that any 'stat' list
  286. // entry that has the same status type (e.g. informationalStatus) must have a unique statID.  The reason
  287. // is that PrinterShare uses the (status type, statID) pair in comparisons to see if the status has
  288. // changed.
  289.  
  290. resource 'stat' (kDriverStatusID, sysheap, purgeable)         // Driver status informational messages only 
  291. {
  292.     kDrvrCreatorType,
  293.     {
  294.         informationalStatus,     1,        kNoAlertCoolID,    "Sending data to the printer…";
  295.     }
  296. };
  297.  
  298.  
  299. /*************************** Paper Type Definitions for the New Printing Architecture **************************/
  300. // These paper type definitions represent the new settings for the ImageWriter LQ's paper 
  301. // sizes. 
  302.  
  303. resource 'ptyp' (kNewPaperTypesID + 1, sysheap, purgeable)    // US Letter 
  304. {
  305.     "US Letter",
  306.     
  307.     // page rectangle 
  308.     0x00000000,                // 8.0 x 10.33
  309.     0x00000000,                
  310.     0x02400000,                
  311.     0x02E7C298,                
  312.  
  313.     // paper rectangle 
  314.     0xFFEE0000,                // 8.5 x 11.0
  315.     0xFFE7E14C,                
  316.     0x02520000,                
  317.     0x02FFE14C,                
  318.     
  319.     usLetterBase,
  320.     kDrvrCreatorType,
  321.  
  322.     inch,
  323.     newStylePaperType,
  324.     notFixedPrintArea,
  325.     isDefaultPaperType,
  326.     defaultBasePT,
  327.     {}
  328. };
  329.  
  330. resource 'ptyp' (kNewPaperTypesID + 2, sysheap, purgeable)    // US Legal 
  331. {
  332.     "US Legal",
  333.     
  334.     // page rectangle 
  335.     0x00000000,                // 8.0 x 13.33
  336.     0x00000000,                
  337.     0x02400000,                    
  338.     0x03BFC298,                
  339.  
  340.     // paper rectangle 
  341.     0xFFEE0000,                // 8.5 x 14.0
  342.     0xFFE7E14C,                
  343.     0x02520000,                
  344.     0x03D7E14C,                
  345.     
  346.     usLegalBase,
  347.     kDrvrCreatorType,
  348.  
  349.     inch,
  350.     newStylePaperType,
  351.     notFixedPrintArea,
  352.     notDefaultPaperType,
  353.     defaultBasePT,
  354.     {}
  355. };
  356.  
  357. resource 'ptyp' (kNewPaperTypesID + 3, sysheap, purgeable)    // Computer Paper 
  358. {
  359.     "Computer Paper",
  360.     
  361.     // page rectangle 
  362.     0x00000000,                // 13.33 x 10.33 
  363.     0x00000000,
  364.     0x03BFC298,
  365.     0x02E7C298,
  366.  
  367.     // paper rectangle 
  368.     0xFFE7E14C,                //    14.0 x 11.0
  369.     0xFFE7E14C,
  370.     0x03D7E14C,
  371.     0x02FFE14C,
  372.     
  373.     unknownBase,
  374.     kDrvrCreatorType,
  375.  
  376.     inch,
  377.     newStylePaperType,
  378.     notFixedPrintArea,
  379.     notDefaultPaperType,
  380.     notDefaultBasePT,
  381.     {}
  382. };
  383.  
  384. resource 'ptyp' (kNewPaperTypesID + 4, sysheap, purgeable)    // A4 Letter 
  385. {
  386.     "A4 Letter",
  387.     
  388.     // page rectangle 
  389.     0x00000000,                // 8.0 x 11.0 
  390.     0x00000000,                
  391.     0x02400000,                
  392.     0x03180000,                
  393.  
  394.     // paper rectangle 
  395.     0xFFF70000,                // 8.25 x 11.67
  396.     0xFFE7E14C,                
  397.     0x02490000,                
  398.     0x03301EB4,                
  399.     
  400.     a4LetterBase,
  401.     kDrvrCreatorType,
  402.  
  403.     inch,
  404.     newStylePaperType,
  405.     notFixedPrintArea,
  406.     notDefaultPaperType,
  407.     defaultBasePT,
  408.     {}
  409. };
  410.  
  411. resource 'ptyp' (kNewPaperTypesID + 5, sysheap, purgeable)    // International Fanfold 
  412. {
  413.     "International Fanfold",
  414.     
  415.     // page rectangle 
  416.     0x00000000,                    // 8.0 x 11.33 
  417.     0x00000000,                    
  418.     0x02400000,                    
  419.     0x032FC298,                    
  420.     
  421.     // paper rectangle 
  422.     0xFFF70000,                    // 8.25 x 12.0 
  423.     0xFFE7E14C,                    
  424.     0x02490000,                    
  425.     0x0347E14C,                    
  426.     
  427.     unknownBase,
  428.     kDrvrCreatorType,
  429.  
  430.     inch,
  431.     newStylePaperType,
  432.     notFixedPrintArea,
  433.     notDefaultPaperType,
  434.     notDefaultBasePT,
  435.     {}
  436. };
  437.  
  438. resource 'ptyp' (kNewPaperTypesID + 6, sysheap, purgeable)    // Envelope (#10) 
  439. {
  440.     "Envelope (#10)",
  441.     
  442.     // page rectangle 
  443.     0x00000000,                    // 9.3333 x 3.3333 
  444.     0x00000000,                    
  445.     0x029FFF58,                    
  446.     0x00EFFF58,                    
  447.     
  448.     // paper rectangle 
  449.     0xFFF9FFAC,                    // 9.5 x 4.125 
  450.     0xFFE37FAC,                    
  451.     0x02A5FFAC,                    
  452.     0x010C7FAC,                    
  453.     
  454.     unknownBase,
  455.     kDrvrCreatorType,
  456.  
  457.     inch,
  458.     newStylePaperType,
  459.     notFixedPrintArea,
  460.     notDefaultPaperType,
  461.     notDefaultBasePT,
  462.     {}
  463. };
  464.  
  465.  
  466. /*************************** "LQ Options" Job Print Dialog Panel Resources **************************/
  467. // The following resources describe a dialog panel, LQ Options", that is always added by the LW driver 
  468. // to the Print Job dialog.  It currently contains one option, which is to select bidirectional or
  469. // unidirectional printing.
  470.  
  471. // The 'panl' resource provides a description of the panel we want to have displayed by the Printing Manager
  472.  
  473. resource 'panl'  (kLQOptionsPanl, sysheap, purgeable)
  474. {
  475.         "LQ Options",         //    Name that appears below the panel's icon
  476.         smRoman,             //    Language script to use
  477.         kDriverIconID,     //    Resource ID of the panel's icon (an 'iclX' resource)
  478.         kLQOptionsDITL;    //    Resource ID of the 'DITL' that describes the dialog panel items
  479. };
  480.  
  481. // The 'DITL' resource describes the panel's dialog items
  482.  
  483. resource 'DITL' (kLQOptionsDITL, sysheap, purgeable) 
  484. {
  485.     {
  486.         /* [1] */    {10, 10, 26, 190}, StaticText {disabled, "Options:"},
  487.                 
  488.         /* [2] */    {33, 20, 49, 99}, StaticText {disabled, "Head Scan:"},
  489.         /* [3] */    {33, 112, 49, 218}, RadioButton {enabled, "Bidirectional"},
  490.         /* [4] */    {33, 233, 49, 347}, RadioButton {enabled, "Unidirectional"}
  491.     }
  492. };
  493.  
  494. // The 'xdtl' resource tells the Printing Manager the type of items that are logically grouped in 
  495. // the dialog panel and specifies the Job collection item into which the dialog item settings
  496. // should be stored.
  497.  
  498. resource 'xdtl' (kLQOptionsXdtl, sysheap, purgeable)
  499. {
  500.     {    
  501.         RadioButtons    { kDrvrCreatorType, kHeadMotionItemIndex,  0, {3, 4} }
  502.     };
  503. };
  504.  
  505.  
  506. /*************************** Default Input Tray Related Resources **************************/
  507. // The following resources describe the default input tray for the LQ printer.  These
  508. // resources are accessed by the Printing Manager when a deskptop printer is created.  They
  509. // define the default paper input slot for the printer.
  510.  
  511.  
  512. // The trayNameDataType specifies the human readable name of the default input tray
  513.  
  514. resource gxTrayNameDataType (kDefaultTrayNameID, sysheap, purgeable)
  515. {
  516.     "Paper Feed Slot";
  517. };
  518.  
  519.  
  520. // trayCountDataType specifies the default number of paper feed trays. Note that the
  521. // Printing Manager requires that this resource have resource ID trayCountDataID.
  522.  
  523. resource gxTrayCountDataType (kDefaultTrayRsrcID, sysheap, purgeable)
  524. {
  525.     1;
  526. };
  527.  
  528.  
  529. /*************************** LQ Cut Sheet Feeder Related Resources **************************/
  530. // The following resources describe the default number of sheet feeder trays for an LQ with a
  531. // feeder attached and the human readable names of the trays.
  532.  
  533.  
  534. // gxTrayNameDataType specify the human readable names of the trays
  535.  
  536. resource gxTrayNameDataType (kDefaultSheetFdrTray1NameID, sysheap, purgeable)
  537. {
  538.     "Tray #1";
  539. };
  540.  
  541. resource gxTrayNameDataType (kDefaultSheetFdrTray2NameID, sysheap, purgeable)
  542. {
  543.     "Tray #2";
  544. };
  545.  
  546. resource gxTrayNameDataType (kDefaultSheetFdrTray3NameID, sysheap, purgeable)
  547. {
  548.     "Tray #3";
  549. };
  550.  
  551.  
  552. // trayCountDataType specifies the number of trays. Note that the
  553. // Printing Manager requires that this resource have resource ID trayCountDataID.
  554.  
  555. resource gxTrayCountDataType (kDefaultSheetFeederRsrcID, sysheap, purgeable)
  556. {
  557.     3;
  558. };
  559.  
  560.  
  561. /*************************** LQ Cut Sheet Feeder Dialog Setup Related Resources **************************/
  562. // The following resources describe the dialog that is displayed when the user attempts to configure
  563. // the paper that's contained in the printer's sheet feeder.  
  564.  
  565.  
  566. // These DITL and DLOG resources describe the sheetfeeder dialog
  567.  
  568. resource 'DITL' (kSheetFeederDITL, sysheap, purgeable)
  569. {
  570.     {
  571.         /* [1] */    {158, 380, 178, 440}, Button {enabled, "OK"},
  572.         /* [2] */    {158, 304, 178, 364}, Button {enabled, "Cancel"},
  573.         /* [3] */    {10, 30, 26, 370}, StaticText {disabled, "Please specify the paper in the LQ printer:"},
  574.         /* [4] */    {39, 247, 59, 440}, Control {enabled, kTray1Control},        // Tray #1 pop-up
  575.         /* [5] */    {64, 247, 84, 440}, Control {enabled, kTray2Control},        //    Tray #2 pop-up
  576.         /* [6] */    {87, 247, 110, 440}, Control {enabled, kTray3Control},    //    Tray #3 pop-up
  577.         /* [7] */    {47, 62, 177, 239}, UserItem {disabled}                        //    Picture of printer with sheetfeeder
  578.     }
  579. };
  580.  
  581. resource 'DLOG' (kSheetFeederDLOG, sysheap, purgeable)
  582. {
  583.     {34, 14, 225, 476},
  584.     dBoxProc,
  585.     invisible,
  586.     noGoAway,
  587.     0x0,
  588.     kSheetFeederDITL,
  589.     "LQ Setup",
  590.     alertPositionMainScreen
  591. };
  592.  
  593.  
  594. // This resource is needed for proper use of color in the Sheetfeeder dialog
  595.  
  596. resource 'dctb' (kSheetFeederDLOG, sysheap, purgeable)
  597. {
  598.     {    /* array ColorSpec: 0 elements */
  599.     }
  600. };
  601.  
  602.  
  603. // These MENU resources describe the pop-up menus that are included in the sheetfeeder dialog
  604.  
  605. resource 'MENU' (kTray1Menu, sysheap, purgeable)
  606. {
  607.     kTray1Menu,
  608.     textMenuProc,
  609.     allEnabled,
  610.     enabled,
  611.     "Tray #1",
  612.     {    /* array: 0 elements */
  613.     }
  614. };
  615.  
  616. resource 'MENU' (kTray2Menu, sysheap, purgeable)
  617. {
  618.     kTray2Menu,
  619.     textMenuProc,
  620.     allEnabled,
  621.     enabled,
  622.     "Tray #2",
  623.     {    /* array: 0 elements */
  624.     }
  625. };
  626.  
  627. resource 'MENU' (kTray3Menu, sysheap, purgeable)
  628. {
  629.     kTray3Menu,
  630.     textMenuProc,
  631.     allEnabled,
  632.     enabled,
  633.     "Tray #3",
  634.     {    /* array: 0 elements */
  635.     }
  636. };
  637.  
  638.  
  639. // These CNTL resources describe the dialog controls that reference the pop-up menus in the sheetfeeder dialog
  640.  
  641. resource 'CNTL' (kTray1Control, sysheap, purgeable)
  642. {
  643.     {39, 247, 59, 440},
  644.     0,
  645.     visible,
  646.     65,
  647.     kTray1Menu,
  648.     1008,
  649.     0,
  650.     "Tray #1:"
  651. };
  652.  
  653. resource 'CNTL' (kTray2Control, sysheap, purgeable)
  654. {
  655.     {64, 247, 84, 440},
  656.     0,
  657.     visible,
  658.     65,
  659.     kTray2Menu,
  660.     1008,
  661.     0,
  662.     "Tray #2:"
  663. };
  664.  
  665. resource 'CNTL' (kTray3Control, sysheap, purgeable)
  666. {
  667.     {87, 247, 110, 440},
  668.     0,
  669.     visible,
  670.     65,
  671.     kTray3Menu,
  672.     1008,
  673.     0,
  674.     "Tray #3:"
  675. };
  676.  
  677.  
  678. // These PICT resources are displayed in the sheetfeeder dialog and contain images of a 1, 2, and 3 tray LQ printer
  679.  
  680. resource 'PICT' (kThreeTrayPICT, sysheap, purgeable)    // Three tray LQ sheetfeeder
  681. {
  682.     1212,
  683.     {0, 0, 130, 177},
  684.     $"0011 02FF 0C00 FFFF FFFF FFFF 0000 FFFF"
  685.     $"0000 00B0 0000 0081 0000 0000 0000 00A1"
  686.     $"0064 0008 6450 726F 0000 0001 00A0 0082"
  687.     $"001E 001A BFFF BFFF BFFF 0001 000A FFFF"
  688.     $"FFFF 0081 00B0 0031 0060 0029 0067 009C"
  689.     $"001A 0000 0000 0000 0038 001A BFFF BFFF"
  690.     $"BFFF 0031 0065 0001 0081 009C 001A 0000"
  691.     $"0000 0000 0038 001A BFFF BFFF BFFF 0051"
  692.     $"0060 0020 0071 0031 001A 0000 0000 0000"
  693.     $"0058 001A BFFF BFFF BFFF 0061 0060 0021"
  694.     $"006B 0032 010E 005A 001A 0000 0000 0000"
  695.     $"0068 010E 005A 00A0 00A0 00A1 00A4 0002"
  696.     $"0750 0001 000A 0000 0000 0000 0000 0022"
  697.     $"0060 003A 0000 0023 0DEA 0023 0000 0023"
  698.     $"0900 0023 0000 0023 F516 0023 0000 0023"
  699.     $"F500 0023 0000 001A BFFF BFFF BFFF 0084"
  700.     $"000A 0000 0000 0000 0000 00A0 00A3 0001"
  701.     $"000A FFFF FFFF 0081 00B0 0081 00C0 004A"
  702.     $"003A 0060 0050 004A 0047 0050 7FFF 004B"
  703.     $"0046 0047 004F 0050 7FFF 004D 0045 0046"
  704.     $"004E 004F 7FFF 004E 0044 0045 7FFF 004F"
  705.     $"004D 004E 7FFF 0050 0043 0044 7FFF 0051"
  706.     $"004C 004D 7FFF 0052 0042 0043 7FFF 0053"
  707.     $"0041 0042 004B 004C 7FFF 0055 0040 0041"
  708.     $"004A 004B 7FFF 0057 003F 0040 0049 004A"
  709.     $"7FFF 0058 003E 003F 7FFF 0059 0048 0049"
  710.     $"7FFF 005A 003D 003E 7FFF 005B 0047 0048"
  711.     $"7FFF 005C 003C 003D 7FFF 005D 003B 003C"
  712.     $"0046 0047 7FFF 005F 003A 003B 0045 0046"
  713.     $"7FFF 0060 003A 0045 7FFF 7FFF 001A 0000"
  714.     $"0000 0000 0023 0DEA 0023 0900 0023 F516"
  715.     $"0023 F500 00A0 00A1 00A0 00A0 00A1 00A4"
  716.     $"0002 0750 0001 000A 0000 0000 0000 0000"
  717.     $"0022 0060 0057 0000 0023 0DEA 0023 0000"
  718.     $"0023 0900 0023 0000 0023 F516 0023 0000"
  719.     $"0023 F500 0023 0000 001A BFFF BFFF BFFF"
  720.     $"0084 000A 0000 0000 0000 0000 00A0 00A3"
  721.     $"0001 000A FFFF FFFF 0081 00B0 0081 00C0"
  722.     $"004A 0057 0060 006D 004A 0064 006D 7FFF"
  723.     $"004B 0063 0064 006C 006D 7FFF 004D 0062"
  724.     $"0063 006B 006C 7FFF 004E 0061 0062 7FFF"
  725.     $"004F 006A 006B 7FFF 0050 0060 0061 7FFF"
  726.     $"0051 0069 006A 7FFF 0052 005F 0060 7FFF"
  727.     $"0053 005E 005F 0068 0069 7FFF 0055 005D"
  728.     $"005E 0067 0068 7FFF 0057 005C 005D 0066"
  729.     $"0067 7FFF 0058 005B 005C 7FFF 0059 0065"
  730.     $"0066 7FFF 005A 005A 005B 7FFF 005B 0064"
  731.     $"0065 7FFF 005C 0059 005A 7FFF 005D 0058"
  732.     $"0059 0063 0064 7FFF 005F 0057 0058 0062"
  733.     $"0063 7FFF 0060 0057 0062 7FFF 7FFF 001A"
  734.     $"0000 0000 0000 0023 0DEA 0023 0900 0023"
  735.     $"F516 0023 F500 00A0 00A1 00A0 00A0 00A1"
  736.     $"00A4 0002 0750 0001 000A 0000 0000 0000"
  737.     $"0000 0022 0060 0075 0000 0023 0DEA 0023"
  738.     $"0000 0023 0900 0023 0000 0023 F516 0023"
  739.     $"0000 0023 F500 0023 0000 001A BFFF BFFF"
  740.     $"BFFF 0084 000A 0000 0000 0000 0000 00A0"
  741.     $"00A3 0001 000A FFFF FFFF 0081 00B0 0081"
  742.     $"00C0 004A 0075 0060 008B 004A 0082 008B"
  743.     $"7FFF 004B 0081 0082 008A 008B 7FFF 004D"
  744.     $"0080 0081 0089 008A 7FFF 004E 007F 0080"
  745.     $"7FFF 004F 0088 0089 7FFF 0050 007E 007F"
  746.     $"7FFF 0051 0087 0088 7FFF 0052 007D 007E"
  747.     $"7FFF 0053 007C 007D 0086 0087 7FFF 0055"
  748.     $"007B 007C 0085 0086 7FFF 0057 007A 007B"
  749.     $"0084 0085 7FFF 0058 0079 007A 7FFF 0059"
  750.     $"0083 0084 7FFF 005A 0078 0079 7FFF 005B"
  751.     $"0082 0083 7FFF 005C 0077 0078 7FFF 005D"
  752.     $"0076 0077 0081 0082 7FFF 005F 0075 0076"
  753.     $"0080 0081 7FFF 0060 0075 0080 7FFF 7FFF"
  754.     $"001A 0000 0000 0000 0023 0DEA 0023 0900"
  755.     $"0023 F516 0023 F500 00A0 00A1 0022 004B"
  756.     $"008A 0CE7 0022 004A 006D 17CF 0022 004A"
  757.     $"0050 23B7 0022 0032 0096 1800 0022 0019"
  758.     $"0086 2900 0022 0001 0073 3C00 00A0 0083"
  759.     $"00FF"
  760. };
  761.  
  762. resource 'PICT' (kTwoTrayPICT, sysheap, purgeable)    // Two tray LQ sheetfeeder
  763. {
  764.     874,
  765.     {0, 0, 130, 177},
  766.     $"0011 02FF 0C00 FFFF FFFF FFFF 0000 FFFF"
  767.     $"0000 00B0 0000 0081 0000 0000 0000 00A1"
  768.     $"0064 0008 6450 726F 0000 0001 00A0 0082"
  769.     $"001E 001A BFFF BFFF BFFF 0001 000A FFFF"
  770.     $"FFFF 0081 00B0 0031 0060 0029 0067 009C"
  771.     $"001A 0000 0000 0000 0038 001A BFFF BFFF"
  772.     $"BFFF 0031 0065 0001 0081 009C 001A 0000"
  773.     $"0000 0000 0038 001A BFFF BFFF BFFF 0051"
  774.     $"0060 0020 0071 0031 001A 0000 0000 0000"
  775.     $"0058 001A BFFF BFFF BFFF 0061 0060 0021"
  776.     $"006B 0032 010E 005A 001A 0000 0000 0000"
  777.     $"0068 010E 005A 00A0 00A0 00A1 00A4 0002"
  778.     $"0750 0001 000A 0000 0000 0000 0000 0022"
  779.     $"0060 003A 0000 0023 0DEA 0023 0000 0023"
  780.     $"0900 0023 0000 0023 F516 0023 0000 0023"
  781.     $"F500 0023 0000 001A BFFF BFFF BFFF 0084"
  782.     $"000A 0000 0000 0000 0000 00A0 00A3 0001"
  783.     $"000A FFFF FFFF 0081 00B0 0081 00C0 004A"
  784.     $"003A 0060 0050 004A 0047 0050 7FFF 004B"
  785.     $"0046 0047 004F 0050 7FFF 004D 0045 0046"
  786.     $"004E 004F 7FFF 004E 0044 0045 7FFF 004F"
  787.     $"004D 004E 7FFF 0050 0043 0044 7FFF 0051"
  788.     $"004C 004D 7FFF 0052 0042 0043 7FFF 0053"
  789.     $"0041 0042 004B 004C 7FFF 0055 0040 0041"
  790.     $"004A 004B 7FFF 0057 003F 0040 0049 004A"
  791.     $"7FFF 0058 003E 003F 7FFF 0059 0048 0049"
  792.     $"7FFF 005A 003D 003E 7FFF 005B 0047 0048"
  793.     $"7FFF 005C 003C 003D 7FFF 005D 003B 003C"
  794.     $"0046 0047 7FFF 005F 003A 003B 0045 0046"
  795.     $"7FFF 0060 003A 0045 7FFF 7FFF 001A 0000"
  796.     $"0000 0000 0023 0DEA 0023 0900 0023 F516"
  797.     $"0023 F500 00A0 00A1 00A0 00A0 00A1 00A4"
  798.     $"0002 0750 0001 000A 0000 0000 0000 0000"
  799.     $"0022 0060 0057 0000 0023 0DEA 0023 0000"
  800.     $"0023 0900 0023 0000 0023 F516 0023 0000"
  801.     $"0023 F500 0023 0000 001A BFFF BFFF BFFF"
  802.     $"0084 000A 0000 0000 0000 0000 00A0 00A3"
  803.     $"0001 000A FFFF FFFF 0081 00B0 0081 00C0"
  804.     $"004A 0057 0060 006D 004A 0064 006D 7FFF"
  805.     $"004B 0063 0064 006C 006D 7FFF 004D 0062"
  806.     $"0063 006B 006C 7FFF 004E 0061 0062 7FFF"
  807.     $"004F 006A 006B 7FFF 0050 0060 0061 7FFF"
  808.     $"0051 0069 006A 7FFF 0052 005F 0060 7FFF"
  809.     $"0053 005E 005F 0068 0069 7FFF 0055 005D"
  810.     $"005E 0067 0068 7FFF 0057 005C 005D 0066"
  811.     $"0067 7FFF 0058 005B 005C 7FFF 0059 0065"
  812.     $"0066 7FFF 005A 005A 005B 7FFF 005B 0064"
  813.     $"0065 7FFF 005C 0059 005A 7FFF 005D 0058"
  814.     $"0059 0063 0064 7FFF 005F 0057 0058 0062"
  815.     $"0063 7FFF 0060 0057 0062 7FFF 7FFF 001A"
  816.     $"0000 0000 0000 0023 0DEA 0023 0900 0023"
  817.     $"F516 0023 F500 00A0 00A1 0022 004A 006D"
  818.     $"17CF 0022 004A 0050 23B7 0022 0019 0086"
  819.     $"2900 0022 0001 0073 3C00 00A0 0083 00FF"
  820. };
  821.  
  822. resource 'PICT' (kOneTrayPICT, sysheap, purgeable)    // One tray LQ sheetfeeder
  823. {
  824.     532,
  825.     {0, 0, 130, 177},
  826.     $"0011 02FF 0C00 FFFF FFFF FFFF 0000 FFFF"
  827.     $"0000 00B0 0000 0081 0000 0000 0000 00A1"
  828.     $"0064 0008 6450 726F 0000 0001 00A0 0082"
  829.     $"001E 001A BFFF BFFF BFFF 0001 000A FFFF"
  830.     $"FFFF 0081 00B0 0031 0060 0029 0067 009C"
  831.     $"001A 0000 0000 0000 0038 001A BFFF BFFF"
  832.     $"BFFF 0031 0065 0001 0081 009C 001A 0000"
  833.     $"0000 0000 0038 001A BFFF BFFF BFFF 0051"
  834.     $"0060 0020 0071 0031 001A 0000 0000 0000"
  835.     $"0058 001A BFFF BFFF BFFF 0061 0060 0021"
  836.     $"006B 0032 010E 005A 001A 0000 0000 0000"
  837.     $"0068 010E 005A 00A0 00A0 00A1 00A4 0002"
  838.     $"0750 0001 000A 0000 0000 0000 0000 0022"
  839.     $"0060 003A 0000 0023 0DEA 0023 0000 0023"
  840.     $"0900 0023 0000 0023 F516 0023 0000 0023"
  841.     $"F500 0023 0000 001A BFFF BFFF BFFF 0084"
  842.     $"000A 0000 0000 0000 0000 00A0 00A3 0001"
  843.     $"000A FFFF FFFF 0081 00B0 0081 00C0 004A"
  844.     $"003A 0060 0050 004A 0047 0050 7FFF 004B"
  845.     $"0046 0047 004F 0050 7FFF 004D 0045 0046"
  846.     $"004E 004F 7FFF 004E 0044 0045 7FFF 004F"
  847.     $"004D 004E 7FFF 0050 0043 0044 7FFF 0051"
  848.     $"004C 004D 7FFF 0052 0042 0043 7FFF 0053"
  849.     $"0041 0042 004B 004C 7FFF 0055 0040 0041"
  850.     $"004A 004B 7FFF 0057 003F 0040 0049 004A"
  851.     $"7FFF 0058 003E 003F 7FFF 0059 0048 0049"
  852.     $"7FFF 005A 003D 003E 7FFF 005B 0047 0048"
  853.     $"7FFF 005C 003C 003D 7FFF 005D 003B 003C"
  854.     $"0046 0047 7FFF 005F 003A 003B 0045 0046"
  855.     $"7FFF 0060 003A 0045 7FFF 7FFF 001A 0000"
  856.     $"0000 0000 0023 0DEA 0023 0900 0023 F516"
  857.     $"0023 F500 00A0 00A1 0022 004A 0050 23B7"
  858.     $"0023 3C00 00A0 0083 00FF"
  859. };
  860.  
  861.  
  862. /*************************** Draft Mode Printing Resources **************************/
  863. // The idft resource describes all of the characters that can be output to the LQ in draft
  864. // mode.  For any of the possible characters, the table lists the one or two character
  865. // sequence that needs to be printed in order to generate the target character.  In the event
  866. // two characters must be printed in order to generate the target character, the second character
  867. // is overstruck on the first character.
  868.  
  869. type 'idft' {
  870.     array charArray {
  871.     unsigned bitstring[1] noBack = 0, Back = 1;            //    Back => must overstrike first character with the second
  872.     unsigned bitstring[3] = 0;
  873.     unsigned bitstring[4]    American =    kAmerican,         // Character sets supported
  874.                                     British    =    kBritish, 
  875.                                     Danish    =    kDanish, 
  876.                                     French    =    kFrench, 
  877.                                     German    =    kGerman, 
  878.                                     Italian    =    kItalian, 
  879.                                     Swedish    =    kSwedish, 
  880.                                     Spanish    =    kSpanish;    
  881.     unsigned hex byte noChar = $00;                            //    The actual character to print
  882.     };
  883. };
  884.  
  885. // Note: to properly see the following characters, this file should be viewed in Courier
  886.  
  887. resource 'idft' (gxPrintingDriverBaseID, sysheap, purgeable)
  888. {
  889.     {
  890.     noBack,        American,    $20;    noBack,        American,    noChar;        // space
  891.     noBack,        American,    $21;    noBack,        American,    noChar;        // !
  892.     noBack,        American,    $22;    noBack,        American,    noChar;        // "
  893.     noBack,        American,    $23;    noBack,        American,    noChar;        // #
  894.     noBack,        American,    $24;    noBack,        American,    noChar;        // $
  895.     noBack,        American,    $25;    noBack,        American,    noChar;        // %
  896.     noBack,        American,    $26;    noBack,        American,    noChar;        // &
  897.     noBack,        American,    $27;    noBack,        American,    noChar;        // '
  898.     noBack,        American,    $28;    noBack,        American,    noChar;        // (
  899.     noBack,        American,    $29;    noBack,        American,    noChar;        // )
  900.     noBack,        American,    $2A;    noBack,        American,    noChar;        // *
  901.     noBack,        American,    $2B;    noBack,        American,    noChar;        // +
  902.     noBack,        American,    $2C;    noBack,        American,    noChar;        // ,
  903.     noBack,        American,    $2D;    noBack,        American,    noChar;        // -
  904.     noBack,        American,    $2E;    noBack,        American,    noChar;        // .
  905.     noBack,        American,    $2F;    noBack,        American,    noChar;        // /
  906.     
  907.     noBack,        American,    $30;    noBack,        American,    noChar;        // 0
  908.     noBack,        American,    $31;    noBack,        American,    noChar;        // 1
  909.     noBack,        American,    $32;    noBack,        American,    noChar;        // 2
  910.     noBack,        American,    $33;    noBack,        American,    noChar;        // 3
  911.     noBack,        American,    $34;    noBack,        American,    noChar;        // 4
  912.     noBack,        American,    $35;    noBack,        American,    noChar;        // 5
  913.     noBack,        American,    $36;    noBack,        American,    noChar;        // 6
  914.     noBack,        American,    $37;    noBack,        American,    noChar;        // 7
  915.     noBack,        American,    $38;    noBack,        American,    noChar;        // 8
  916.     noBack,        American,    $39;    noBack,        American,    noChar;        // 9
  917.     noBack,        American,    $3A;    noBack,        American,    noChar;        // :
  918.     noBack,        American,    $3B;    noBack,        American,    noChar;        // ;
  919.     noBack,        American,    $3C;    noBack,        American,    noChar;        // <
  920.     noBack,        American,    $3D;    noBack,        American,    noChar;        // =
  921.     noBack,        American,    $3E;    noBack,        American,    noChar;        // >
  922.     noBack,        American,    $3F;    noBack,        American,    noChar;        // ?
  923.     
  924.     noBack,        American,    $40;    noBack,        American,    noChar;        // @
  925.     noBack,        American,    $41;    noBack,        American,    noChar;        // A
  926.     noBack,        American,    $42;    noBack,        American,    noChar;        // B
  927.     noBack,        American,    $43;    noBack,        American,    noChar;        // C
  928.     noBack,        American,    $44;    noBack,        American,    noChar;        // D
  929.     noBack,        American,    $45;    noBack,        American,    noChar;        // E
  930.     noBack,        American,    $46;    noBack,        American,    noChar;        // F
  931.     noBack,        American,    $47;    noBack,        American,    noChar;        // G
  932.     noBack,        American,    $48;    noBack,        American,    noChar;        // H
  933.     noBack,        American,    $49;    noBack,        American,    noChar;        // I
  934.     noBack,        American,    $4A;    noBack,        American,    noChar;        // J
  935.     noBack,        American,    $4B;    noBack,        American,    noChar;        // K
  936.     noBack,        American,    $4C;    noBack,        American,    noChar;        // L
  937.     noBack,        American,    $4D;    noBack,        American,    noChar;        // M
  938.     noBack,        American,    $4E;    noBack,        American,    noChar;        // N
  939.     noBack,        American,    $4F;    noBack,        American,    noChar;        // O
  940.     noBack,        American,    $50;    noBack,        American,    noChar;        // P
  941.     noBack,        American,    $51;    noBack,        American,    noChar;        // Q
  942.     noBack,        American,    $52;    noBack,        American,    noChar;        // R
  943.     noBack,        American,    $53;    noBack,        American,    noChar;        // S
  944.     noBack,        American,    $54;    noBack,        American,    noChar;        // T
  945.     noBack,        American,    $55;    noBack,        American,    noChar;        // U
  946.     noBack,        American,    $56;    noBack,        American,    noChar;        // V
  947.     noBack,        American,    $57;    noBack,        American,    noChar;        // W
  948.     noBack,        American,    $58;    noBack,        American,    noChar;        // X
  949.     noBack,        American,    $59;    noBack,        American,    noChar;        // Y
  950.     noBack,        American,    $5A;    noBack,        American,    noChar;        // Z
  951.     
  952.     noBack,        American,    $5B;    noBack,        American,    noChar;        // [
  953.     noBack,        American,    $5C;    noBack,        American,    noChar;        // \
  954.     noBack,        American,    $5D;    noBack,        American,    noChar;        // ]
  955.     noBack,        American,    $5E;    noBack,        American,    noChar;        // ^
  956.     noBack,        American,    $5F;    noBack,        American,    noChar;        // _
  957.     noBack,        American,    $60;    noBack,        American,    noChar;        // `
  958.     
  959.     noBack,        American,    $61;    noBack,        American,    noChar;        // a
  960.     noBack,        American,    $62;    noBack,        American,    noChar;        // b
  961.     noBack,        American,    $63;    noBack,        American,    noChar;        // c
  962.     noBack,        American,    $64;    noBack,        American,    noChar;        // d
  963.     noBack,        American,    $65;    noBack,        American,    noChar;        // e
  964.     noBack,        American,    $66;    noBack,        American,    noChar;        // f
  965.     noBack,        American,    $67;    noBack,        American,    noChar;        // g
  966.     noBack,        American,    $68;    noBack,        American,    noChar;        // h
  967.     noBack,        American,    $69;    noBack,        American,    noChar;        // i
  968.     noBack,        American,    $6A;    noBack,        American,    noChar;        // j
  969.     noBack,        American,    $6B;    noBack,        American,    noChar;        // k
  970.     noBack,        American,    $6C;    noBack,        American,    noChar;        // l
  971.     noBack,        American,    $6D;    noBack,        American,    noChar;        // m
  972.     noBack,        American,    $6E;    noBack,        American,    noChar;        // n
  973.     noBack,        American,    $6F;    noBack,        American,    noChar;        // o
  974.     noBack,        American,    $70;    noBack,        American,    noChar;        // p
  975.     noBack,        American,    $71;    noBack,        American,    noChar;        // q
  976.     noBack,        American,    $72;    noBack,        American,    noChar;        // r
  977.     noBack,        American,    $73;    noBack,        American,    noChar;        // s
  978.     noBack,        American,    $74;    noBack,        American,    noChar;        // t
  979.     noBack,        American,    $75;    noBack,        American,    noChar;        // u
  980.     noBack,        American,    $76;    noBack,        American,    noChar;        // v
  981.     noBack,        American,    $77;    noBack,        American,    noChar;        // w
  982.     noBack,        American,    $78;    noBack,        American,    noChar;        // x
  983.     noBack,        American,    $79;    noBack,        American,    noChar;        // y
  984.     noBack,        American,    $7A;    noBack,        American,    noChar;        // z
  985.     
  986.     noBack,        American,    $7B;    noBack,        American,    noChar;        // {
  987.     noBack,        American,    $7C;    noBack,        American,    noChar;        // |
  988.     noBack,        American,    $7D;    noBack,        American,    noChar;        // }
  989.     noBack,        American,    $7E;    noBack,        American,    noChar;        // ~
  990.     noBack,        American,    $20;    noBack,        American,    noChar;        // undefined
  991.     
  992.     // $80 col
  993.     noBack,        Swedish,        $5B;    noBack,        American,    noChar;        // Ä
  994.     noBack,        Swedish,        $5D;    noBack,        American,    noChar;        // Å
  995.     noBack,        American,    $43;    Back,            American,    $2C;            // Ç
  996.     noBack,        American,    $45;    Back,            American,    $27;            // É
  997.     noBack,        Spanish,        $5C;    noBack,        American,    noChar;        // Ñ
  998.     noBack,        Swedish,        $5C;    noBack,        American,    noChar;        // Ö
  999.     noBack,        German,        $5D;    noBack,        American,    noChar;        // Ü
  1000.     noBack,        American,    $61;    Back,            American,    $27;            // á
  1001.     noBack,        Italian,        $7B;    noBack,        American,    noChar;        // à
  1002.     noBack,        American,    $61;    Back,            American,    $5E;            // â
  1003.     noBack,        German,        $7B;    noBack,        American,    noChar;        // ä
  1004.     noBack,        American,    $61;    Back,            American,    $7E;            // ã
  1005.     noBack,        Danish,        $7D;    noBack,        American,    noChar;        // å
  1006.     noBack,        French,        $5C;    noBack,        American,    noChar;        // ç
  1007.     noBack,        French,        $7B;    noBack,        American,    noChar;        // é
  1008.     noBack,        French,        $7D;    noBack,        American,    noChar;        // è
  1009.  
  1010.     // $90 col
  1011.     noBack,        American,    $65;    Back,            American,    $5E;            // ê
  1012.     noBack,        American,    $22;    Back,            American,    $65;            // ë
  1013.     noBack,        American,    $69;    Back,            American,    $27;            // í
  1014.     noBack,        Italian,        $7E;    noBack,        American,    noChar;        // ì
  1015.     noBack,        American,    $69;    Back,            American,    $5E;            // î
  1016.     noBack,        American,    $22;    Back,            American,    $69;            // ï
  1017.     noBack,        Spanish,        $7C;    noBack,        American,    noChar;        // ñ
  1018.     noBack,        American,    $6F;    Back,            American,    $27;            // ó
  1019.     noBack,        Italian,        $7C;    noBack,        American,    noChar;        // ò
  1020.     noBack,        American,    $6F;    Back,            American,    $5E;            // ô
  1021.     noBack,        Swedish,        $7C;    noBack,        American,    noChar;        // ö
  1022.     noBack,        American,    $6F;    Back,            American,    $7E;            // õ
  1023.     noBack,        American,    $75;    Back,            American,    $27;            // ú
  1024.     noBack,        French,        $7C;    noBack,        American,    noChar;        // ù
  1025.     noBack,        American,    $75;    Back,            American,    $5E;            // û
  1026.     noBack,        German,        $7D;    noBack,        American,    noChar;        // ü
  1027.         
  1028.     // $A0 col
  1029.     noBack,        American,    $2B;    Back,            American,    $7C;            // †
  1030.     noBack,        American,    $2A;    noBack,        American,    noChar;        // •
  1031.     noBack,        American,    $63;    Back,            American,    $7C;            // ¢
  1032.     noBack,        British,        $23;    noBack,        American,    noChar;        // £
  1033.     noBack,        German,        $40;    noBack,        American,    noChar;        // §
  1034.     noBack,        French,        $5B;    noBack,        American,    noChar;        // °
  1035.     noBack,        American,    $50;    noBack,        American,    noChar;        // ¶
  1036.     noBack,        German,        $7E;    noBack,        American,    noChar;        // ß
  1037.     noBack,        American,    $4F;    Back,            American,    $72;            // ®
  1038.     noBack,        American,    $4F;    Back,            American,    $63;            // ©
  1039.     noBack,        American,    $74;    noBack,        American,    $6D;            // ™
  1040.     noBack,        American,    $27;    noBack,        American,    noChar;        // ´
  1041.     noBack,        French,        $7E;    noBack,        American,    noChar;        // ¨
  1042.     noBack,        American,    $3D;    Back,            American,    $2F;            // ≠
  1043.     noBack,        Danish,        $5B;    noBack,        American,    noChar;        // Æ
  1044.     noBack,        Danish,        $5C;    noBack,        American,    noChar;        // Ø
  1045.     
  1046.     // $B0 col
  1047.     noBack,        American,    $4F;    Back,            American,    $7C;            // ∞
  1048.     noBack,        American,    $2B;    Back,            American,    $5F;            // ±
  1049.     noBack,        American,    $3C;    Back,            American,    $5F;            // ≤
  1050.     noBack,        American,    $3E;    Back,            American,    $5F;            // ≥
  1051.     noBack,        American,    $59;    Back,            American,    $3D;            // ¥
  1052.     noBack,        American,    $75;    noBack,        American,    noChar;        // µ
  1053.     noBack,        American,    $40;    noBack,        American,    noChar;        // ∂
  1054.     noBack,        American,    $DC;    Back,            American,    $3E;            // ∑
  1055.     noBack,        American,    $6E;    noBack,        American,    noChar;        // ∏
  1056.     noBack,        American,    $6E;    noBack,        American,    noChar;        // π
  1057.     noBack,        American,    $2F;    noBack,        American,    noChar;        // ∫
  1058.     noBack,        American,    $61;    Back,            American,    $5F;            // ª
  1059.     noBack,        American,    $6F;    Back,            American,    $5F;            // º
  1060.     noBack,        American,    $5A;    noBack,        American,    noChar;        // Ω
  1061.     noBack,        Danish,        $7B;    noBack,        American,    noChar;        // æ
  1062.     noBack,        Danish,        $7C;    noBack,        American,    noChar;        // ø
  1063.  
  1064.     // $C0 col
  1065.     noBack,        Spanish,        $5D;    noBack,        American,    noChar;        // ¿
  1066.     noBack,        Spanish,        $5B;    noBack,        American,    noChar;        // ¡
  1067.     noBack,        American,    $CC;    Back,            American,    $DA;            // ¬
  1068.     noBack,        American,    $C5;    noBack,        American,    noChar;        // √
  1069.     noBack,        American,    $53;    noBack,        American,    noChar;        // ƒ
  1070.     noBack,        American,    $3D;    noBack,        American,    noChar;        // ≈
  1071.     noBack,        American,    $5E;    Back,            American,    $2D;            // Δ
  1072.     noBack,        American,    $C8;    noBack,        American,    noChar;        // «
  1073.     noBack,        American,    $D5;    noBack,        American,    noChar;        // »
  1074.     noBack,        American,    $C9;    noBack,        American,    noChar;        // …
  1075.     noBack,        American,    $20;    noBack,        American,    noChar;        // non-breaking space
  1076.     noBack,        American,    $41;    Back,            American,    $60;            // À
  1077.     noBack,        American,    $41;    Back,            American,    $7E;            // Ã
  1078.     noBack,        American,    $4F;    Back,            American,    $7E;            // Õ
  1079.     noBack,        American,    $6F;    noBack,        American,    $65;            // œ
  1080.     noBack,        American,    $4F;    noBack,        American,    $45;            // Œ
  1081.     
  1082.     // $D0 col
  1083.     noBack,        American,    $2D;    noBack,        American,    noChar;        // –
  1084.     noBack,        American,    $D3;    noBack,        American,    noChar;        // —
  1085.     noBack,        American,    $22;    noBack,        American,    noChar;        // “
  1086.     noBack,        American,    $22;    noBack,        American,    noChar;        // ”
  1087.     noBack,        American,    $27;    noBack,        American,    noChar;        // ‘
  1088.     noBack,        American,    $60;    noBack,        American,    noChar;        // ’
  1089.     noBack,        American,    $2B;    noBack,        American,    noChar;        // ÷
  1090.     noBack,        American,    $DB;    noBack,        American,    noChar;        // ◊
  1091.     noBack,        American,    $79;    Back,            American,    $22;            // ÿ
  1092.     noBack,        American,    $59;    Back,            American,    $22;            // Ÿ
  1093.     noBack,        American,    $2F;    noBack,        American,    noChar;        // /
  1094.     noBack,        American,    $DD;    noBack,        American,    noChar;        // €
  1095.     noBack,        American,    $3C;    noBack,        American,    noChar;        // ‹
  1096.     noBack,        American,    $3E;    noBack,        American,    noChar;        // ›
  1097.     noBack,        American,    $66;    noBack,        American,    $69;            // fi
  1098.     noBack,        American,    $66;    noBack,        American,    $6C;            // fl
  1099.     
  1100.     // $E0 col
  1101.     noBack,        American,    $3D;    Back,            American,    $7C;            // ‡
  1102.     noBack,        American,    $2E;    noBack,        American,    noChar;        // ·
  1103.     noBack,        American,    $2C;    noBack,        American,    noChar;        // ‚
  1104.     noBack,        American,    $2C;    noBack,        American,    noChar;        // „
  1105.     noBack,        American,    $25;    noBack,        American,    noChar;        // ‰
  1106.     noBack,        Danish,        $5D;    noBack,        American,    noChar;        // Â
  1107.     noBack,        American,    $45;    Back,            American,    $5E;            // Ê
  1108.     noBack,        American,    $41;    Back,            American,    $27;            // Á
  1109.     noBack,        American,    $45;    Back,            American,    $22;            // Ë
  1110.     noBack,        American,    $45;    Back,            American,    $60;            // È
  1111.     noBack,        American,    $49;    Back,            American,    $27;            // Í
  1112.     noBack,        American,    $49;    Back,            American,    $5E;            // Î
  1113.     noBack,        American,    $49;    Back,            American,    $22;            // Ï
  1114.     noBack,        American,    $49;    Back,            American,    $60;            // Ì
  1115.     noBack,        American,    $4F;    Back,            American,    $27;            // Ó
  1116.     noBack,        American,    $4F;    Back,            American,    $5E;            // Ô
  1117.     
  1118.     // $F0 col
  1119.     noBack,        American,    $C0;    noBack,        American,    noChar;        // 
  1120.     noBack,        American,    $4F;    Back,            American,    $60;            // Ò
  1121.     noBack,        American,    $55;    Back,            American,    $27;            // Ú
  1122.     noBack,        American,    $55;    Back,            American,    $5E;            // Û
  1123.     noBack,        American,    $55;    Back,            American,    $60;            // Ù
  1124.     noBack,        American,    $69;    noBack,        American,    noChar;        // i
  1125.     noBack,        American,    $5E;    noBack,        American,    noChar;        // ^
  1126.     noBack,        Danish,        $7E;    noBack,        American,    noChar;        // ˜
  1127.     noBack,        American,    $2D;    noBack,        American,    noChar;        // ¯
  1128.     noBack,        American,    $2D;    noBack,        American,    noChar;        // ˘
  1129.     noBack,        American,    $2E;    noBack,        American,    noChar;        // ·
  1130.     noBack,        American,    $2E;    noBack,        American,    noChar;        // °
  1131.     noBack,        American,    $2C;    noBack,        American,    noChar;        // ¸
  1132.     noBack,        American,    $22;    noBack,        American,    noChar;        // ˝
  1133.     noBack,        American,    $2C;    noBack,        American,    noChar;        // ˛
  1134.     noBack,        American,    $5E;    noBack,        American,    noChar;        // ˇ
  1135.     };
  1136. };
  1137.  
  1138.  
  1139. // This 'STR#' contains a list of all of the native mode fonts that are supported.  Note the fonts
  1140. // listed here MUST exist in the target system.
  1141.  
  1142. resource 'STR#' (kFormatModeFontsID, sysheap, purgeable) 
  1143. {
  1144.     {
  1145.         "Monaco"
  1146.     }
  1147. };
  1148.  
  1149.  
  1150. // This 'STR#' contains a list of all of the native mode styles that are supported (the indices into the
  1151. // list are well known so don't reorder them.
  1152.  
  1153. resource 'STR#' (kFormatModeStylesID, sysheap, purgeable) 
  1154. {
  1155.     {
  1156.         "Bold",            //    kBoldStyle
  1157.         "Underline"        //    kUnderlineStyle
  1158.     }
  1159. };
  1160.